package LabPrueba;

import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConectarBD {
private String host; // Nombre del host donde se encuentra la BD
private int puerto; // Puerto a traves del que nos conectamos al SGBD
private String db; // Nombre de la BD
private String url;
private Connection conexion;
private Statement sentencia;
private ResultSet resultado;

private ConectarBD() {};

/**
* Los siete pasos para trabajar con BD *
*/
private void ejecuta() {
try {
cargaDriver();
defineConexion();
estableceConexion();
creaSentencia();
ejecutaConsulta();
procesaResultado();
cierraConexion();
}
catch (SQLException e) {
e.printStackTrace();
}
}

private void cargaDriver() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch ( ClassNotFoundException e) {
System.out.println("Error loading driver: " + e);
}
}

private void defineConexion() {
host = "localhost";
puerto = 3306; // Este es el puerto por defecto para MySQL
db = "nasini";
url = "jdbc:mysql://" + host + ":" + puerto + "/" + db;
}

private void estableceConexion() throws SQLException {
String usuario = "root"; // El usuario
String clave ="koala"; // y la clave que utilizamos para conectarnos
conexion = DriverManager.getConnection(url, usuario, clave);
}

private void creaSentencia() throws SQLException {
sentencia = conexion.createStatement();
}

private void ejecutaConsulta() throws SQLException {
String consulta = "SELECT * FROM moneda;"; // Consulta a la BD
resultado = sentencia.executeQuery(consulta);
}

private void procesaResultado() throws SQLException {
System.out.println("Nombre -- Categoria -- Precio -- Id");
while(resultado.next()) { // Antes de empezar a procesar siempre debemos hacer next()
System.out.println(resultado.getString(1) + " -- " +
resultado.getString(2));
}
}

private void cierraConexion() throws SQLException {
conexion.close(); // No olvides cerrar la conexion
}

public static void main(String args[]) {
new ConectarBD().ejecuta();
}
}
